#ifndef LOGIKA_H
#define LOGIKA_H

#include <QObject>
#include <qwt_series_data.h>

class QPolygonF;

/** Логика программы.
 *
 * @author Василий Почкаенко.
 */
class Logika : public QObject{
Q_OBJECT
private:
	/** Звук, полученный из файла.*/
	QByteArray data;

	/** Каналы с данными.*/
	QList<QList<int> > channels;
public:
	explicit Logika(QObject *parent = 0);

	/** Получить кривую n-ого канала.
	 *
	 * @param n Номер канала.
	 */
	const QVector< QPointF > getCurveChannel(int n) const;

	/** Число каналов.*/
	int nChannels();

	/** Получить кривую спектра для n-ого канала.
	 *
	 * @param n Номер канала.
	 */
	QVector< QwtIntervalSample > getCurveSpectrum(int n) const;

	/** Частота.*/
	double F;
signals:
	/** Изменились данные*/
	void dataChanged();

public slots:
	/** Загрузить данные из файла.*/
	void loadFromFile(const QString &fileName);
};

#endif // LOGIKA_H
